﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BitworkStudios.Wizard
{
    public interface IWizardHost
    {
        string ValidationMessage { get; set; }
        IWizardModel Model { get; set; }

        bool ShowFirstButton { get; set; }
        bool ShowLastButton { get; set; }
        bool NavigationEnabled { get; set; }

        event WizardCompletedEventHandler WizardCompleted;

        void WizardPagesWizardPageLocationChanged(WizardPageLocationChangedEventArgs e);
        void NotifyWizardCompleted();
        void OnWizardCompleted();
        void UpdateNavigation();
        bool CheckPageIsValid();
        void LoadWizard();
        void LoadNextPage(int pageIndex, int previousPageIndex, bool savePreviousPage);

        void ButtonFirstClick(object sender, EventArgs e);
        void ButtonPreviousClick(object sender, EventArgs e);
        void ButtonNextClick(object sender, EventArgs e);
        void ButtonLastClick(object sender, EventArgs e);

        void AddPage(int key, IWizardPageBase wizardPage);
    }
}
